home *** CD-ROM | disk | FTP | other *** search
/ Aminet 45 / Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso / Aminet / game / role / ldmud-3.2-bin.lha / mud / doc / efun / limited < prev    next >
Text File  |  1999-07-30  |  2KB  |  51 lines

  1. PRELIMINARY
  2. SYNOPSIS
  3.  
  4.         #include <rtlimits.h>
  5.  
  6.         mixed limited(closure fun)
  7.         mixed limited(closure fun, int tag, int value, ...)
  8.         mixed limited(closure fun, int * limits [, mixed args...] )
  9.  
  10. DESCRIPTION
  11.         Call the function <fun> with any given <args> as parameters,
  12.         and execute it with the given runtime limits.
  13.         
  14.         After the function exits, the currently active limits are restored.
  15.         Result of the efun is the result of the closure call.
  16.  
  17.         The runtime limits can be given in two ways: as an array (like the
  18.         one returned from query_limits(), or as a list of tagged values.  If
  19.         the efun is used without any limit specification, all limits are
  20.         supposed to be 'unlimited'.
  21.  
  22.         The limit settings recognize two special values:
  23.             LIMIT_UNLIMITED: the limit is deactivated
  24.             LIMIT_KEEP:      the former setting is kept
  25.             LIMIT_DEFAULT:   the 'global' default setting is used.
  26.        
  27.         The efun causes a privilege violation ("limited", current_object,
  28.         closure).
  29.  
  30.         A special case is the relaxation of the eval_cost limit: in such
  31.         a case the closure costs only 10 ticks regardless of how many
  32.         ticks it actually needed.
  33.  
  34. EXAMPLES
  35.         limited(#'function)
  36.           --> executes function with no limits at all
  37.  
  38.         limited(#'function, ({ 200000 }), "foo")
  39.           --> executes function with an eval_cost limit of 200000, and
  40.               calls function as <function>("foo").
  41.  
  42.         limited(lambda(0, ({#'function, "foo"})), LIMIT_EVAL, 200000)
  43.           --> executes function with an eval_cost limit of 200000, and
  44.               calls function as <function>("foo").
  45.  
  46. HISTORY
  47.         Introduced in LDMud 3.2.7.
  48.  
  49. SEE ALSO
  50.         query_limits(E), set_limits(E)
  51.